239. 滑动窗口最大值

239. 滑动窗口最大值

239. 滑动窗口最大值 - 力扣(LeetCode)

这是一道困难题,虽然我看了题解,但是我感觉没有这么困难

代码


func maxSlidingWindow(nums []int, k int) []int {
    res := make([]int, 0, len(nums)-k+1)

    deque := make([]int, 0, k)

    for i := 0; i < len(nums); i++ {
        for len(deque) > 0 && nums[deque[len(deque)-1]] < nums[i] {
            // 将最后一个元素去掉
            deque = deque[:len(deque)-1]
        }

        deque = append(deque, i)

        if i - deque[0] >= k {
            deque = deque[1:]
        }

        // fmt.Println(deque)

        // 获取当前窗口结果
        if i >= k-1 {
            res = append(res, nums[deque[0]])
        }
    }

    return res
}

chatgpt 聊天内容: https://chatgpt.com/c/672e2ed7-8a7c-8002-abe2-a8bc52af9e74


本站总访问量次 本站访客数人次 本文总阅读量